Skip to content

GH-48 Introduce simple update checker, using Modrinth api. #48

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 6 commits into from
Aug 11, 2025

Conversation

vLuckyyy
Copy link
Member

@vLuckyyy vLuckyyy commented Aug 3, 2025

package com.eternalcode.commons.updater.example;

import com.eternalcode.commons.updater.UpdateResult;

public class ExampleChecker {

    private static final String OLD_ETERNALCOMBAT_VERSION = "1.3.3";

    public static void main(String[] args) {
        ExampleUpdateService updateService = new ExampleUpdateService();

        UpdateResult modrinthResult = updateService.checkModrinth("EternalCombat", OLD_ETERNALCOMBAT_VERSION);
        System.out.println("Modrinth update available: " + modrinthResult.isUpdateAvailable());
        if (modrinthResult.isUpdateAvailable()) {
            System.out.println("Latest: " + modrinthResult.latestVersion());
            System.out.println("Download: " + modrinthResult.downloadUrl());
            System.out.println("Release page: " + modrinthResult.releaseUrl());
        }
    }
}
image

@vLuckyyy vLuckyyy added the 🆕 feature New feature or request label Aug 3, 2025
Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Summary of Changes

Hello @vLuckyyy, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

I've implemented a new module focused on providing a flexible update checking mechanism. This initial iteration includes an integration with the Modrinth API, allowing applications to programmatically determine if newer versions of their components are available. The changes also include foundational classes for handling version comparisons and update results, along with a clear example demonstrating how to use this new functionality.

Highlights

  • New Update Checker Module: I've introduced a new eternalcode-commons-updater module, designed to provide a generic framework for checking software updates from various sources. This module includes core interfaces and classes like UpdateChecker, UpdateResult, and a Version utility.
  • Modrinth API Integration: A concrete implementation, ModrinthUpdateChecker, has been added to interact with the Modrinth API. This allows the system to query Modrinth for the latest versions of projects and retrieve relevant download and release information.
  • Example Usage Module: To demonstrate the usage and integration of the new update checker, I've created an eternalcode-commons-updater-example module. This example showcases how to utilize the ModrinthUpdateChecker to check for updates for a specific project.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in issue comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments or fill out our survey to provide feedback.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@vLuckyyy vLuckyyy changed the title Introduce simple update checker, using Modrinth api. GH-48 Introduce simple update checker, using Modrinth api. Aug 3, 2025
Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a new module for checking for updates using the Modrinth API. The implementation contains some critical issues that need to be addressed. The version comparison logic is flawed and will not correctly identify newer versions in many cases. The Modrinth API client is using a fragile manual JSON parsing method that is also not compatible with the actual API response format, which will prevent it from working. Additionally, the error handling could be improved to be more resilient to network failures. I've left specific comments with suggestions on how to fix these issues.

Copy link
Member

@CitralFlo CitralFlo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Follow Gemini - had the same issue in irl work XDD update 4.101 was older that 4.99 apparently

@vLuckyyy vLuckyyy merged commit a8dc337 into master Aug 11, 2025
1 check passed
@vLuckyyy vLuckyyy deleted the add-updater-by-modrinth-api branch August 11, 2025 19:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🆕 feature New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants